
let Driver = require('../assets/js/Driver.js');
let Tool = require('../assets/js/Tool.js');

let driver = null;
function open_(InitFn) {
    driver = new Driver('pallet');
    driver.open().then(function () {
        let id = new Date().getTime().toString();
        // 创建分类对象仓库
        driver.createTable({
            name: 'labe',
            primaryKey: 'id',
            autoIncrement: true,
            // indexes: [{
            //     name: 'age_index',
            //     column: 'age'
            // }],
            data: [{
                "id": id,
                "name": "我的一天",
                "icon": "el-icon-star-off",
            }]
        })
        // 创建代办事项对象仓库
        driver.createTable({
            name: 'toDo',
            primaryKey: 'id',
            autoIncrement: true,
            indexes: [{
                name: 'complete_menuId',
                column: ['complete', 'menuId'],
                unique: false,
            }, {
                name: 'complete',
                column: 'complete',
                unique: false,
            }],
            data: [{
                "id": new Date().getTime().toString(),
                "menu": "我的一天", // 分类的名字
                "menuId": id, // 分类的id
                "content": "代办事项为你服务哦！！！",  // 事项内容
                "complete": 0,  // 是否完成事项了。0为false，1为true
                "completeFlag": false,  // 是否完成事项了。 
                "textareaDisabled": true, // 是否打开编辑能力。
                "createdDate": Tool.dateFormat(new Date(), "Y-m-d H:i:s"),  // 创建时间
                "completeDate": ""  // 完成时间
            }]
        })
        InitFn && InitFn()
    })
}

module.exports = {
    open(fn) {
        open_(fn);
    },
    getAllCompleteTodo(superiorId, fn, name) {
        if (name == '我的一天')
            return driver.table("toDo").multiple("complete", KeyRange.eq(1)).then((res) => {
                fn && fn(res);
            })
        else
            return driver.table("toDo").multiple("complete_menuId", KeyRange.eq([1, superiorId])).then((res) => {
                fn && fn(res);
            })
    },
    getAllNoCompleteTodo(superiorId, fn, name) {
        if (name == '我的一天')
            return driver.table("toDo").multiple("complete", KeyRange.eq(0)).then((res) => {
                fn && fn(res);
            })
        else
            return driver.table("toDo").multiple("complete_menuId", KeyRange.eq([0, superiorId])).then((res) => {
                fn && fn(res);
            })
    },
    toDo_insert(obj) {
        driver.insert("toDo", obj)
    },
    toDo_delete(id) {
        driver.delete("toDo", id)
    },
    toDo_update(modify) {
        driver.update("toDo", modify)
    },
    labe_getAll(fn) {
        return driver.table("labe").query().then((res) => {
            fn && fn(res);
        })
    },
    labe_insert(obj) {
        driver.insert("labe", obj)
    },
    labe_delete(id) {
        driver.delete("labe", id)
    },
};